<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Animations Test: animation-duration - finite value</title>
<link rel="author" title="Nokia Inc." href="http://www.nokia.com">
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="reviewer" title="Zhiqiang Zhang" href="mailto:zhiqiang.zhang@intel.com"> <!-- 2015-05-05 -->
<link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-name">
<link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-duration">
<meta name="flags" content="animated">
<meta name="assert" content="When animation-duration is set a finite time offset,
                             animation takes the specifies time to complete one cycle.">
<style>
  div {
    animation-name: sample;
    animation-duration: 2s;

    background-color: blue;
    height: 100px;
    width: 100px;
    position: relative;
  }

  @keyframes sample {
    from {
      left: 150px;
    }

    to {
      left: 0px;
    }
  }
</style>

<body>
  <p>
    Test passes if there is a filled blue square with 'Filler Text',
    which starts moving from right to left upon page load and lasts for a span of 10 seconds.
  </p>
  <div id="main">Filler Text</div>
</body>
<script>
  requestAnimationFrame(async () => {
    const main = document.getElementById('main');
    await sleep(0.1);
    expect(main.offsetLeft > 120).toBe(true, `animation 0% ${main.offsetLeft}`);
    await sleep(1);
    expect(main.offsetLeft > 0 && main.offsetLeft < 75).toBe(true, `animation 50% ${main.offsetLeft}`);
    await sleep(1);
    expect(main.offsetLeft === 0).toBe(true, `animation 100% ${main.offsetLeft}`);
  });
</script>
